Data exchange method, apparatus, server, and electronic device

ABSTRACT

The present disclosure relates to exchanging data for multi-party computation. In some aspects, a server generates a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed, respectively. The sever generates a fifth random number set and a sixth random number set, respectively, based on the first random number set, the second random number set, the third random number set, and the fourth random number set. The random numbers in the random number sets satisfy a predetermined condition. The server sends the first random seed, the second random seed, and the fifth random number set to a first device. The server sends the third random seed, the fourth random seed, and the sixth random number set to a second device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of PCT Application No. PCT/CN2020/071588, filed on Jan. 11, 2020, which claims priority to Chinese Patent Application No. 201910583548.6, filed on Jul. 1, 2019, and each application is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present specification relates to the field of computer technologies, and in particular to data exchange multi-party computation.

BACKGROUND

Secure multi-party computation (MPC) is a cryptographic technology. By executing one MPC algorithm, a plurality of parties participating in computation can jointly perform secure computation based on their own input data, to obtain a computation result without leaking their own input data to the other parties.

MPC has been widely used in business practice. For example, in a cooperative security modeling scenario, for the sake of protecting data privacy, a plurality of data parties can cooperatively train a data processing model by using the MPC technology without leaking their own data.

SUMMARY

An objective of implementations of the present specification is to provide a data exchange method, apparatus, server, and electronic device, so as to reduce the number of random numbers sent by a random number server, thereby reducing network bandwidth occupation.

To achieve the previous objective, one or more implementations of the present specification provide the following technical solutions:

According to a first aspect of one or more implementations of the present specification, a data exchange method is provided, where the method is applied to the secure multi-party computation (MPC) field and includes the following: successively generating a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed respectively; generating a fifth random number set and a sixth random number set respectively based on the first random number set, the second random number set, the third random number set, and the fourth random number set, where random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set satisfy a predetermined condition; sending the first random seed, the second random seed, and the fifth random number set to a first device; and sending the third random seed, the fourth random seed, and the sixth random number set to a second device.

According to a second aspect of one or more implementations of the present specification, a data exchange apparatus is provided, where the apparatus is applied to the MPC field and includes the following: a first generation unit, configured to successively generate a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed respectively; a second generation unit, configured to generate a fifth random number set and a sixth random number set respectively based on the first random number set, the second random number set, the third random number set, and the fourth random number set, where random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set satisfy a predetermined condition; a first sending unit, configured to send the first random seed, the second random seed, and the fifth random number set to a first device; and a second sending unit, configured to send the third random seed, the fourth random seed, and the sixth random number set to a second device.

According to a third aspect of one or more implementations of the present specification, a server is provided, where the server includes the following: a memory, configured to store a computer instruction; and a processor, configured to execute the computer instruction to implement the method steps according to the first aspect.

According to a fourth aspect of one or more implementations of the present specification, a data exchange method is provided, where the method is applied to the MPC field and includes the following: receiving a first random seed, a second random seed, and a first random number set; and generating a second random number set and a third random number set based on the first random seed and the second random seed respectively, so that MPC is performed based on the first random number set, the second random number set, and the third random number set.

According to a fifth aspect of one or more implementations of the present specification, a data exchange apparatus is provided, where the apparatus is applied to the MPC field and includes the following: a receiving unit, configured to receive a first random seed, a second random seed, and a first random number set; and a generation unit, configured to generate a second random number set and a third random number set based on the first random seed and the second random seed respectively, so that MPC is performed based on the first random number set, the second random number set, and the third random number set.

According to a sixth aspect of one or more implementations of the present specification, an electronic device is provided, where the electronic device includes the following: a memory, configured to store a computer instruction; and a processor, configured to execute the computer instruction to implement the method steps according to the fourth aspect.

As can be seen from the technical solutions provided in the previous implementations of the present specification, in the implementations of the present specification, the random number server can send the first random seed and the second random seed to the first device, and can send the third random seed and the fourth random seed to the second device. The random number server sends the random seeds to the first device and the second device, thereby reducing the number of sent random numbers and reducing network bandwidth occupation.

BRIEF DESCRIPTION OF DRAWINGS

To describe technical solutions in implementations of the present specification or in the existing technology more clearly, the following briefly describes the accompanying drawings needed for describing the implementations or the existing technology. Apparently, the accompanying drawings in the following descriptions merely show some implementations of the present specification, and a person of ordinary skill in the art can still derive other drawings from these accompanying drawings without creative efforts.

FIG. 1 is a schematic diagram illustrating a random number distribution method in a related technology;

FIG. 2 is an architectural diagram illustrating a data processing system, according to an implementation of the present specification;

FIG. 3 is a flowchart illustrating a data exchange method, according to an implementation of the present specification;

FIG. 4 is a schematic diagram illustrating a secret sharing process, according to an implementation of the present specification;

FIG. 5 is a flowchart illustrating a data exchange method, according to an implementation of the present specification;

FIG. 6 is a flowchart illustrating a data exchange method, according to an implementation of the present specification;

FIG. 7 is a functional structure diagram illustrating a data exchange apparatus, according to an implementation of the present specification;

FIG. 8 is a functional structure diagram illustrating a data exchange apparatus, according to an implementation of the present specification;

FIG. 9 is a functional structure diagram illustrating a server, according to an implementation of the present specification; and

FIG. 10 is a functional structure diagram illustrating an electronic device, according to an implementation of the present specification.

DESCRIPTION OF IMPLEMENTATIONS

The following describes the technical solutions in the implementations of the present specification with reference to the accompanying drawings in the implementations of the present specification. Apparently, the described implementations are merely some but not all of the implementations of the present specification. All other implementations obtained by a person of ordinary skill in the art based on the implementations of the present specification without creative efforts shall fall within the protection scope of the present specification.

References are made to FIG. 1. In the previous related technologies, a third party can generate a first random number set, a second random number set, a third random number set, a fourth random number set, a fifth random number set, and a sixth random number set. Each of the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set can include at least one random number. Random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set can satisfy a predetermined condition.

The third party can send the first random number set, the second random number set, and the fifth random number set to a first device; and the third party can send the third random number set, the fourth random number set, and the sixth random number set to a second device. The first device can receive the first random number set, the second random number set, and the fifth random number set. The second device can receive the third random number set, the fourth random number set, and the sixth random number set. As such, the first device can perform secure multi-party computation (MPC) based on the first random number set, the second random number set, and the fifth random number set; and the second device can perform MPC based on the third random number set, the fourth random number set, and the sixth random number set. The third party needs to send the first random number set, the second random number set, and the fifth random number set to the first device; and needs to send the third random number set, the fourth random number set, and the sixth random number set to the second device. Consequently, the number of random numbers sent by the third party is large, and a large amount of network bandwidth is occupied.

MPC is an algorithm for protecting data privacy and data security. A plurality of participants can use the MPC technology to perform cooperative calculation to obtain a computation result without leaking their own data. For example, through MPC, participants P₁, . . . , P_(n) can cooperatively calculate the function ƒ(x₁, . . . , x_(n))=(y₁, . . . , y_(n))=y, where n≥2; x₁, . . . , x_(n) represent data owned by the participants P₁, . . . , P_(n) respectively; y represents a calculation result; y₁, . . . , y_(n) represent shares of the participants P₁, . . . , P_(n) in the calculation result y respectively after the calculation.

MPC has been widely used in business practice. For example, in a cooperative security modeling scenario, for the sake of protecting data privacy, a plurality of data parties can cooperatively train a data processing model by using the MPC technology without leaking their own data.

Secret sharing (SS) is an algorithm that is used to implement MPC. An idea of the secret sharing algorithm is as follows: Secret information is split in an appropriate way; the shares obtained after splitting are managed by different participants; a single participant cannot restore the secret information; the secret information can only be restored through cooperation of more than one participants. For example, the participant P₁ owns data x₁ and the participant P₂ owns data x₂. By using the secret sharing algorithm, the participant P₁ and the participant P₂ can perform cooperative calculation to obtain a calculation result y=y₁+y₂=ƒ(x₁,x₂)=x₁x₂. After the calculation, the participant P₁ can obtain a share y₁ of the calculation result y, and the participant P₂ can obtain a share y₂ of the calculation result y.

A random seed can be a random number that is used to generate a random number. The random seed can be either a true random number or a pseudo-random number. In practice, iteration is performed for a plurality of times by using a random number generation algorithm and using the random seed as an initial condition, to generate a plurality of corresponding random numbers.

References are made to FIG. 2. The present specification provides an implementation of a data processing system.

In the implementation, the data processing system can include a random number server, a first device, and a second device.

The random number server can be a server, or a server cluster that includes a plurality of servers. As a trusted third party (TTP), the random number server is configured to separately send a random seed and a random number to the first device and the second device. The random number server can successively generate a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed respectively. The random number server can generate a fifth random number set and a sixth random number set respectively based on the first random number set, the second random number set, the third random number set, and the fourth random number set, where random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set satisfy a predetermined condition. The random number server can send the first random seed, the second random seed, and the fifth random number set to the first device, and the random number server can send the third random seed, the fourth random seed, and the sixth random number set to the second device.

Each of the first device and the second device can be a device such as a server, a mobile phone, a tablet computer, or a personal computer, or can be a system that includes a plurality of devices, for example, a server cluster that includes a plurality of servers. The first device and the second device can be both parties participating in MPC. The first device can receive the first random seed, the second random seed, and the fifth random number set; and the first device can locally generate the first random number set and the second random number set based on the first random seed and the second random seed, respectively. The second device can receive the third random seed, the fourth random seed, and the sixth random number set; and the second device can locally generate the third random number set and the fourth random number set based on the third random seed and the fourth random seed, respectively. As such, the first device can perform MPC based on the first random number set, the second random number set, and the fifth random number set; and the second device can perform MPC based on the third random number set, the fourth random number set, and the sixth random number set.

Based on the same random seed, different implementation entities execute the same random number generation algorithm to obtain the same random number. Therefore, a random number generation algorithm can be agreed on among the random number server, the first device, and the second device. The random number generation algorithm can include the midsquare method, the linear congruential method, etc. As such, based on the first random seed, the random number server and the first device can obtain the same first random number set by executing the agreed random number generation algorithm. Similarly, the random number server and the first device can further obtain the same second random number set. The random number server and the second device can obtain the same third random number set and the same fourth random number set.

The present specification further provides an implementation of a data exchange method. References are made to FIG. 3. The implementation can include the following steps.

S11: A random number server generates a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed respectively.

In some implementations, the first random seed, the second random seed, the third random seed, and the fourth random seed are all MPC random seeds, and random numbers generated based on the MPC random seeds can be used to participate in MPC. The first random seed, the second random seed, the third random seed, and the fourth random seed can be generated by the random number server, or can be sent by other electronic devices, which is not limited in the present implementation. The first random seed can be used to generate a random number in the first random number set, the second random seed can be used to generate a random number in the second random number set, the third random seed can be used to generate a random number in the third random number set, and the fourth random seed can be used to generate a random number in the fourth random number set. Each of the first random number set, the second random number set, the third random number set, and the fourth random number set can include at least one random number that can be used to participate in MPC.

There can be a mapping relationship among random numbers in the first random number set, the second random number set, the third random number set, and the fourth random number set. In an example scenario, the first random number set can be R1={<u₀>_(i), . . . , <u₀>, . . . , <u₀>_(k)}, where <u₀>_(i) represents an ith random number u₀ in the first random number set. The second random number set can be R2={<v₀>_(l), . . . , <v₀>_(i), . . . , <v₀>_(k)}, where <v₀>_(i) represents an ith random number v₀ in the second random number set. The third random number set can be R3={<u₁>_(l), . . . , <u₁>_(i), . . . , <u₁>_(k)}, where <u₁>_(i) represents an ith random number u₁ in the third random number set. The fourth random number set can be R4={<v₁>_(l), . . . , <v₁>_(i), . . . , <v₁>_(k)}, where <v₁>_(i) represents an ith random number u₁ in the fourth random number set. There can be a mapping relationship among <u₀>_(i), <v₀>_(i), <u₁>_(i), and <v₁>_(i), where i is a natural number greater than 0.

In some implementations, the first random number set can include one random number. Therefore, the random number server can generate one random number as the random number in the first random number set by using the agreed random number generation algorithm and using the first random seed as an initial condition. Alternatively, the first random number set can include a plurality of random numbers. Therefore, the random number server can perform iteration for a plurality of times by using the agreed random number generation algorithm and using the first random seed as an initial condition, to obtain a plurality of random numbers as the random numbers in the first random number set. The process of generating the second random number set, the third random number set, and the fourth random number set by the random number server can be similar to the process of generating the first random number set, and details are omitted here for simplicity.

S13: The random number server generates a fifth random number set and a sixth random number set respectively based on the first random number set, the second random number set, the third random number set, and the fourth random number set.

In some implementations, each of the fifth random number set and the sixth random number set can include at least one random number. There can be a mapping relationship among random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set. Referring back to the previous example scenario, the fifth random number set can be R5={<z₀>_(l), . . . , <z₀>_(i), . . . , <z₀>_(k)}, where <z₀>_(i) represents an ith random number z₀ in the fifth random number set. The sixth random number set can be R6={<z₁>_(l), . . . , <z₁>_(i), . . . , <z_(l)>_(k)}, where <z₁>_(i) represents an ith random number z₁ in the sixth random number set. There can be a mapping relationship among <u₀>_(i), <v₀>_(i), <u₁>_(i), <v₁>_(i), <z₀>_(i), and <z₁>_(i).

The random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set can satisfy a predetermined condition. Referring back to the previous example scenario, the predetermined condition can be (<u₀>_(i)+<u₁>_(i))(<v₀>_(i)+<v₁>_(i))=<z₀>_(i)+<z₁>_(i).

In some implementations, the random number server can generate a fifth random number set; and the random number server can compute first data as a random number in the sixth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the predetermined condition. Referring back to the previous example scenario, the random number server can generate a random number <z₀>_(i) as a random number in the fifth random number set R5; and the random number server can compute first data <z₁>_(i) as a random number in the sixth random number set R6 based on random numbers <u₀>_(i), <v₀>_(i), <u₁>_(i), <v₁>_(i), and <z₀>_(i), and the predetermined condition (<u₀>_(i)+<u₁>_(i))(<v₀>_(i)+<v₁>_(i))=<z₀>_(i)+<z₁>_(i).

Alternatively, the random number server can generate the sixth random number set; and the random number server can compute second data as a random number in the fifth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the sixth random number set, and the predetermined condition. Referring back to the previous example scenario, the random number server can generate a random number <z₁>_(i) as a random number in the sixth random number set R6; and the random number server can compute second data <z₀>_(i) as a random number in the fifth random number set R5 based on <u₀>_(i), <v₀>_(i), <u₁>_(i), <v₁>_(i), and <z₀>_(i), and the predetermined condition (<u₀>_(i)+<u₁>_(i))(<v₀>_(i)+<v₁>_(i))=<z₀>_(i)+<z₁>_(i).

S15: The random number server sends the first random seed, the second random seed, and the fifth random number set to a first device.

In some implementations, the random number server can send the first random seed, the second random seed, and the fifth random number set to the first device. The first device can receive the first random seed, the second random seed, and the fifth random number set.

S17: The random number server sends the third random seed, the fourth random seed, and the sixth random number set to a second device.

In some implementations, the random number server can send the third random seed, the fourth random seed, and the sixth random number set to the second device. The second device can receive the third random seed, the fourth random seed, and the sixth random number set.

S19: The first device receives the first random seed, the second random seed, and the fifth random number set; and generates the first random number set and the second random number set based on the first random seed and the second random seed, respectively.

In some implementations, the first device can locally generate the first random number set and the second random number set by using an agreed random number generation algorithm and based on the first random seed and the second random seed, respectively.

S21: The second device receives the third random seed, the fourth random seed, and the sixth random number set; and generates the third random number set and the fourth random number set based on the third random seed and the fourth random seed, respectively.

In some implementations, the second device can locally generate the third random number set and the fourth random number set by using an agreed random number generation algorithm and based on the third random seed and the fourth random seed, respectively.

S23: The first device performs MPC based on the first random number set, the second random number set, and the fifth random number set; and the second device performs MPC based on the third random number set, the fourth random number set, and the sixth random number set.

In some implementations, the first random number set and the second random number set locally generated by the first device are respectively the same as the first random number set and the second random number set locally generated by the random number server, and the third random number set and the fourth random number set locally generated by the second device are respectively the same as the third random number set and the fourth random number set locally generated by the random number server. Therefore, random numbers in the first random number set locally generated by the first device, the second random number set locally generated by the first device, the third random number set locally generated by the second device, the fourth random number set locally generated by the second device, the fifth random number set locally generated by the random number server, and the sixth random number set locally generated by the random number server satisfy the previous predetermined condition. As such, the first device can perform MPC based on the first random number set, the second random number set, and the fifth random number set; and the second device can perform MPC based on the third random number set, the fourth random number set, and the sixth random number set.

Secret sharing is an algorithm that is used to implement MPC. References are made to FIG. 4. The following describes an example scenario in which the first device and the second device performs secret sharing.

In the example scenario, the first device owns a first business dataset D1={<a₀>_(l), . . . , <a₀>_(i), . . . , <a₀>_(k)} and a second business dataset D2={<b₀>_(l), . . . , <b₀>_(i), . . . , <b₀>_(k)}, where <a₀>_(i) represents an ith piece of business data a₀ in the first business dataset, and <b₀>_(i) represents an ith piece of business data b₀ in the second business dataset.

The second device owns a third business dataset D3={<a₁>_(l), . . . , <a₁>_(i), . . . , <a₁>_(k)} and a fourth business dataset D4={<b₀>_(l), . . . , <b₀>_(i), . . . , <b₀>_(k)}, where <a₁>_(i) represents an ith piece of business data a₁ in the third business dataset, and <b₁>_(i) represents an ith piece of business data b₁ in the fourth business dataset.

<a₀>_(i) can be understood as a share of business data <a>_(i), and <a₁>_(i) can be understood as another share of business data <a>_(i), where <a₀>_(i)>+<_(i)>_(i)=<a>_(i). Similarly, <b₀>_(i) can be understood as a share of business data <b>_(i), and <b₁>_(i) can be understood as another share of business data <b>_(i), where <b₀>_(i)+<b₁>_(i)=<b>_(i).

In the example scenario, the first device can generate the first random number set R1={<u₀>_(l), . . . , <u₀>_(i), . . . , <u₀>_(k)} and the second random number set R2={<v₀>_(l), . . . , <v₀>_(i), . . . , <v₀>_(k)}; and the first device can receive the fifth random number set R5={<z₀>_(l), . . . , <z₀>_(i), . . . , <z₀>_(k)} from the random number server.

The second device can generate the third random number set R3={<u₁>_(l), . . . , <u₁>_(i), . . . , <u₁>_(k)} and the fourth random number set R4={<v₁>_(l), . . . , <v₁>_(i), . . . , <v₁>_(k)}; and the second device can receive the sixth random number set R6={<z₁>_(l), . . . , <z₁>_(i), . . . , <z₁>_(k)} set from the random number server.

<u₀>_(i), <v₀>_(i), <u₁>_(i), <v₁>_(i), <z₀>_(i), and <z₁>_(i) represent the ith random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set, respectively. <u₀>_(i), <v₀>_(i), <u₁>_(i), <v₁>_(i), <z₀>_(i), and <z₁>_(i) satisfy the following predetermined condition: (<u₀>_(i)+<u₁>_(i))(<v₀>_(i)+<v₁>_(i))=<z₀>_(i)+<z₁>_(i).

In the example scenario, the first device can secretly share a product <a>_(i)×<b>_(i) based on business data <a₀>_(i), business data <b₀>_(i), a random number <u₀>_(i), a random number <v₀>_(i), and a random number <z₀>_(i); and the second device can secretly share the product <a>_(i)×<b>_(i) based on business data <a₁>_(i), business data <b₁>_(i), a random number <u₁>_(i), a random number <v₁>_(i), and a random number <z₁>_(i). The first device can obtain a share <c₀>_(i) of the product <a>_(i)×<b>_(i), and the second device can obtain another share <c₁>_(i) of the product <a>_(i)×<b>_(i), where <c₀>_(i)+<c₁>_(i)=<a>_(i)×<b>_(i)=(<a₀>_(i)+<a₁>_(i))(<b₀>_(i)+<b₁>_(i)). A specific process is as follows:

The first device can calculate <a₀>_(i)−<u₀>_(i) and <b₀>_(i)−<v₀>_(i), and can send <a₀>_(i)−<u₀>_(i) and <b₀>_(i)−<v₀>_(i) to the second device. The second device can receive <a₀>_(i)<u₀>_(i) and <b₀>_(i)−<v₀>_(i).

The second device can calculate <a₁>_(i)−<u₁>_(i) and <b₁>_(i)−<v₁>_(i) and can send <a₁>_(i)−<u₁>_(i) and <b₁>_(i)−<v₁>_(i) to the first device. The first device can receive <a₁>_(i)−<u₁>_(i) and <b₁>_(i)−<v₁>_(i).

The first device can calculate <e>_(i)=(<a₀>_(i)−<u₀>_(i))+(<a₁>_(i)−<u₁>_(i))=(<a₀>_(i)+<a₁>_(i))−(<u₀>_(i)+<u₁>_(i))=<a>_(i)−<u>_(i) and <f>_(i)=(<b₀>_(i)−<v₀>_(i))+(<b₁>_(i)−<v₁>_(i))=(<b₀>_(i)+<b₁>_(i))−(<v₀>_(i)+<v₁>_(i))=<b>_(i)−<v>_(i). The second device can calculate <e>_(i)=(<a₀>_(i)−<u₀>_(i))+(<a₁>_(i)−<u₁>_(i))=(<a₀>_(i)+<a₁>_(i))−(<u₀>_(i)+<u₁>_(i))−<a>_(i)−<u>_(i) and <f>_(i)=(<b₀>_(i)−<v₀>_(i))+(<b₁>_(i)−<v₁>_(i))=(<b₀>_(i)+<b₁>_(i))−(<v₀>_(i)+<v₁>_(i))=<b>_(i)−<v>_(i). As such, both the first device and the second device obtain <e>_(i) and <f>_(i).

The first device can calculate <c₀>_(i)=<e>_(i)×<f>_(i)+<a₀>_(i)×<f>_(i)+<e>_(i)×<b₀>_(i)+<z₀>_(i). The second device can calculate <c₁>_(i)=<a₁>_(i)×<f>_(i)+<e>_(i)×<b₁>_(i)+<z₁>_(i). As such, secret sharing is implemented.

According to the data exchange method in the implementations of the present specification, the random number server can send the first random seed and the second random seed to the first device, and can send the third random seed and the fourth random seed to the second device. The random number server sends the random seeds to the first device and the second device, thereby reducing the number of sent random numbers and reducing network bandwidth occupation.

The following describes an example application scenario of an implementation of the present specification. It is worthwhile to note that, the example application scenario is merely intended to better describe the implementations of the present specification, and does not constitute an undue limitation on the implementations of the present specification.

In the cooperative security modeling scenario, for the sake of protecting data privacy, a plurality of data parties can cooperatively train the data processing model based on their own data without leaking their own data. The data processing model includes but is not limited to the logistic regression model, the linear regression model, the neural network model, etc. In the process of training the data processing model, the model parameters of the data processing model can be optimized and adjusted by using a model parameter optimization method. The model parameter optimization method can include the gradient descent method, the Newton method, etc. In a cooperative security modeling scenario, the data that is used to train the data processing model is scattered among data parties of cooperative modeling. Therefore, in the cooperative security modeling scenario, the model parameter optimization method can be implemented by using the secret sharing algorithm.

Usually, a third party can send the first random number set, the second random number set, and the fifth random number set to the first device; and the third party can send the third random number set, the fourth random number set, and the sixth random number set to the second device. The random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set can satisfy a predetermined condition. As such, the first device can implement the model parameter optimization method by using the secret sharing algorithm based on the first random number set, the second random number set, and the fifth random number set; and the second device can implement the model parameter optimization method by using the secret sharing algorithm based on the third random number set, the fourth random number set, and the sixth random number set, thereby optimizing and adjusting the model parameters of the data processing model. However, the third party needs to send the first random number set, the second random number set, and the fifth random number set to the first device; and needs to send the third random number set, the fourth random number set, and the sixth random number set to the second device. Consequently, the number of random numbers sent by the third party is large, and a large amount of network bandwidth is occupied.

According to the data exchange method in the previous implementations of the present specification, the problem of large network bandwidth occupation can be solved. The third party can send the first random seed, the second random seed, and the fifth random number set to the first device; and the third party can send the third random seed, the fourth random seed, and the sixth random number set to the second device. The first device can receive the first random seed, the second random seed, and the fifth random number set; and the first device can generate the first random number set and the second random number set based on the first random seed and the second random seed, respectively. The second device can receive the third random seed, the fourth random seed, and the sixth random number set; and the second device can generate the third random number set and the fourth random number set based on the third random seed and the fourth random seed, respectively. As such, the first device can implement the model parameter optimization method by using the secret sharing algorithm based on the first random number set, the second random number set, and the fifth random number set; and the second device can implement the model parameter optimization method by using the secret sharing algorithm based on the third random number set, the fourth random number set, and the sixth random number set, thereby optimizing and adjusting the model parameters of the data processing model. The third party sends the random seeds to the first device and the second device, thereby reducing the number of sent random numbers and reducing network bandwidth occupation.

Based on the same inventive concept, the present specification further provides another implementation of a data exchange method. References are made to FIG. 5. The present implementation can be applied to a random number server and can include the following steps.

S31: Generate a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed respectively.

In some implementations, the first random seed, the second random seed, the third random seed, and the fourth random seed can be generated by the random number server, or can be sent by other electronic devices. The first random seed can be used to generate a random number in the first random number set, the second random seed can be used to generate a random number in the second random number set, the third random seed can be used to generate a random number in the third random number set, and the fourth random seed can be used to generate a random number in the fourth random number set. Each of the first random number set, the second random number set, the third random number set, and the fourth random number set can include at least one random number. There can be a mapping relationship among random numbers in the first random number set, the second random number set, the third random number set, and the fourth random number set.

In some implementations, the first random number set can include one random number. Therefore, the random number server can generate one random number as the random number in the first random number set by using the agreed random number generation algorithm and using the first random seed as an initial condition. Alternatively, the first random number set can include a plurality of random numbers. Therefore, the random number server can perform iteration for a plurality of times by using the agreed random number generation algorithm and using the first random seed as an initial condition, to obtain a plurality of random numbers as the random numbers in the first random number set. The process of generating the second random number set, the third random number set, and the fourth random number set by the random number server can be similar to the process of generating the first random number set, and details are omitted here for simplicity.

S33: Generate a fifth random number set and a sixth random number set respectively based on the first random number set, the second random number set, the third random number set, and the fourth random number set.

In some implementations, each of the fifth random number set and the sixth random number set can include at least one random number. There can be a mapping relationship among random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set.

The random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set can satisfy a predetermined condition.

In some implementations, the random number server can generate a fifth random number set; and the random number server can compute first data as a random number in the sixth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the predetermined condition.

Alternatively, the random number server can generate the sixth random number set; and the random number server can compute second data as a random number in the fifth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the sixth random number set, and the predetermined condition.

S35: Send the first random seed, the second random seed, and the fifth random number set to a first device.

In some implementations, the random number server can send the first random seed and the second random seed to the first device, so that the first device generates a first random number set and a second random number set based on the first random seed and the second random seed respectively.

In some implementations, the first device can locally generate a first random number set and a second random number set based on the first random seed and the second random seed respectively; and the first device can perform MPC with the second device based on the first random number set, the second random number set, and the fifth random number set.

S37: Send the third random seed, the fourth random seed, and the sixth random number set to a second device.

In some implementations, the random number server can send the third random seed and the fourth random seed to the second device, so that the second device generates a third random number set and a fourth random number set based on the third random seed and the fourth random seed respectively.

In some implementations, the second device can locally generate a third random number set and a fourth random number set based on the third random seed and the fourth random seed respectively; and the second device can perform MPC with the first device based on the third random number set, the fourth random number set, and the sixth random number set.

According to the data exchange method in the implementations of the present specification, the random number server sends the random seeds to the first device and the second device, thereby reducing the number of sent random numbers and reducing network bandwidth occupation.

Based on the same inventive concept, the present specification further provides another implementation of a data exchange method. References are made to FIG. 6. The present implementation can be applied to an electronic device, and the electronic device can include a first device and a second device. The implementation can include the following steps.

S41: Receive a first random seed, a second random seed, and a first random number set.

In some implementations, a random number server can send the first random seed, the second random seed, and the first random number set to the electronic device. The electronic device can receive the first random seed, the second random seed, and the first random number set from the random number server.

S43: Generate a second random number set and a third random number set respectively based on the first random seed and the second random seed.

In some implementations, a random number generation algorithm can be agreed on between the random number server and the electronic device. The electronic device can generate the second random number set and the third random number set by using the agreed random number generation algorithm based on the first random seed and the second random seed respectively, so that MPC is performed based on the first random number set, the second random number set, and the third random number set.

According to the data exchange method in the implementations of the present specification, the electronic device can receive the first random seed, the second random seed, and the first random number set sent by the random number server; and the electronic device can generate the second random number set and the third random number set based on the first random seed and the second random seed respectively, so that MPC is performed based on the first random number set, the second random number set, and the third random number set.

References are made to FIG. 7. The present specification further provides an implementation of a data exchange apparatus. The implementation can be applied to a random number server and can include the following units: a first generation unit 51, configured to successively generate a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed respectively; a second generation unit 53, configured to generate a fifth random number set and a sixth random number set respectively based on the first random number set, the second random number set, the third random number set, and the fourth random number set, where random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set satisfy a predetermined condition; a first sending unit 55, configured to send the first random seed, the second random seed, and the fifth random number set to a first device; and a second sending unit 57, configured to send the third random seed, the fourth random seed, and the sixth random number set to a second device.

References are made to FIG. 8. The present specification further provides an implementation of a data exchange apparatus. The implementation can be applied to an electronic device and can include the following units: a receiving unit 61, configured to receive a first random seed, a second random seed, and a first random number set; and a generation unit 63, configured to generate a second random number set and a third random number set based on the first random seed and the second random seed respectively, so that MPC is performed based on the first random number set, the second random number set, and the third random number set.

References are made to FIG. 9. An implementation of the present specification further provides a server. The server can include a memory and a processor.

In the present implementation, the memory includes but is not limited to a dynamic random access memory (DRAM), a static random access memory (SRAM), etc. The memory can be configured to store a computer instruction.

In the present implementation, the processor can be implemented in any appropriate way. For example, the processor can take the form of, for example, a microprocessor or processor, a computer readable medium storing computer readable program code (such as software or firmware) executable by the microprocessor or processor, a logic gate, a switch, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller. The processor can be configured to execute the computer instruction to implement the implementation corresponding to FIG. 3.

References are made to FIG. 10. An implementation of the present specification further provides an electronic device. The electronic device can include a memory and a processor.

In the present implementation, the memory includes but is not limited to a DRAM, an SRAM, etc. The memory can be configured to store a computer instruction.

In the present implementation, the processor can be implemented in any appropriate way. For example, the processor can take the form of, for example, a microprocessor or processor, a computer readable medium storing computer readable program code (such as software or firmware) executable by the microprocessor or processor, a logic gate, a switch, an ASIC, a programmable logic controller, and an embedded microcontroller. The processor can be configured to execute the computer instruction to implement the implementation corresponding to FIG. 4.

It is worthwhile to note that the implementations in the present specification are progressively described, for the same or similar parts in the implementations, references can be made to each other, and each implementation focuses on a difference from other implementations. In particular, the apparatus implementation, the server implementation, and the electronic device implementation are basically similar to the data exchange method implementation, and therefore are described briefly; for related parts, references can be made to the related descriptions in the data exchange method implementation.

In addition, it can be understood that, after reading the present specification document, a person skilled in the art can figure out any combination of some or all of the implementations enumerated in the present specification without creative efforts, and these combinations also fall within the disclosure and protection scopes of the present specification.

In the 1990s, whether a technical improvement is a hardware improvement (for example, an improvement to a circuit structure, such as a diode, a transistor, or a switch) or a software improvement (an improvement to a method procedure) can be distinguished. However, as technologies develop, current improvements to many method procedures can be considered as direct improvements to hardware circuit structures. A designer usually programs an improved method procedure into a hardware circuit, to obtain a corresponding hardware circuit structure. Therefore, a method procedure can be improved by using a hardware entity module. For example, a programmable logic device (PLD) (for example, a field programmable gate array (FPGA)) is such an integrated circuit, and a logical function of the PLD is determined by a user through device programming. The designer performs programming to “integrate” a digital system to a PLD without requesting a chip manufacturer to design and produce an application-specific integrated circuit chip. In addition, at present, instead of manually manufacturing an integrated chip, this type of programming is mostly implemented by using “logic compiler” software. The programming is similar to a software compiler that is used to develop and write a program. Original code needs to be written in a particular programming language for compilation. The language is referred to as a hardware description language (HDL). There are many HDLs, such as the Advanced Boolean Expression Language (ABEL), the Altera Hardware Description Language (AHDL), Confluence, the Cornell University Programming Language (CUPL), HDCal, the Java Hardware Description Language (JHDL), Lava, Lola, MyHDL, PALASM, and the Ruby Hardware Description Language (RHDL). The very-high-speed integrated circuit hardware description language (VHDL) and Verilog2 are most commonly used. A person skilled in the art should also understand that a hardware circuit that implements a logical method procedure can be readily obtained once the method procedure is logically programmed by using the more than one described hardware description languages and is programmed into an integrated circuit.

The system, apparatus, module, or unit illustrated in the previous implementations of the present specification can be implemented by using a computer chip or an entity, or can be implemented by using a product having a certain function. A typical implementation device is a computer. The computer can be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an e-mail device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.

It can be seen from the descriptions of the implementations that a person skilled in the art can understand that the present specification can be implemented by using software and a necessary general hardware platform. Based on such an understanding, the technical solutions in the present specification essentially or the part contributing to the existing technology can be implemented in a form of a software product. The computer software product can be stored in a storage medium, such as a ROM/RAM, a magnetic disk, or an optical disc, and includes more than one instructions for instructing a computer device (can be a personal computer, a server, or a network device) to perform the methods described in the implementations or in some parts of the implementations of the present specification.

The present specification can be applied to many general-purpose or dedicated computer system environments or configurations, for example, a personal computer, a server computer, a handheld device or a portable device, a tablet device, a multi-processor system, a microprocessor-based system, a set-top box, a programmable consumer electronic device, a network PC, a minicomputer, a mainframe computer, and a distributed computing environment including any one of the previous systems or devices.

The present specification can be described in the general context of computer-executable instructions, for example, a program module. Generally, the program module includes a routine, a program, an object, a component, a data structure, etc. executing a specific task or implementing a specific abstract data type. The present specification can alternatively be practiced in distributed computing environments in which tasks are performed by remote processing devices that are connected through a communications network. In a distributed computing environment, the program module can be located in both local and remote computer storage media including storage devices.

Although the present specification is described by using the implementations, a person of ordinary skill in the art knows that many variations of the present specification can be made without departing from the spirit of the present specification. It is expected that the appended claims include these variations without departing from the spirit of the present specification. 

What is claimed is:
 1. A computer-implemented data exchange method for secure multi-party computation (MPC), comprising: generating, by a server, a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed, respectively; generating, by the server, a fifth random number set and a sixth random number set, respectively, based on the first random number set, the second random number set, the third random number set, and the fourth random number set, wherein random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set satisfy a predetermined condition; sending, by the server, the first random seed, the second random seed, and the fifth random number set to a first device; and sending, by the server, the third random seed, the fourth random seed, and the sixth random number set to a second device.
 2. The computer-implemented method of claim 1, wherein the predetermined condition satisfied by the random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set comprises: (<u₀>_(i)+<u₁>_(i))(<v₀>_(i)+<v₁>_(i))=<z₀>_(i)+<z₁>_(i), wherein <u₀>_(i) represents an ith random number u₀ in the first random number set, <u₁>_(i) represents an ith random number u₁ in the third random number set, <v₀>_(i) represents an ith random number v₀ in the second random number set, <v₁>_(i) represents an ith random number v₁ in the fourth random number set, <z₀>_(i) represents an ith random number z₀ in the fifth random number set, <z₁>_(i) represents an ith random number z₁ in the sixth random number set, and i is a natural number greater than zero.
 3. The computer-implemented method of claim 1, wherein generating the fifth random number set and the sixth random number set, respectively, based on the first random number set, the second random number set, the third random number set, and the fourth random number set comprises: generating the fifth random number set and computing first data as a random number in the sixth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the predetermined condition; or generating the sixth random number set and computing second data as a random number in the fifth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the sixth random number set, and the predetermined condition.
 4. The computer-implemented method of claim 1, wherein: sending the first random seed, the second random seed, and the fifth random number set to the first device comprises: sending the first random seed, the second random seed, and the fifth random number set to the first device, wherein the first device generates the first random number set and the second random number set based on the first random seed and the second random seed, and the first device performs MPC based on the first random number set, the second random number set, and the fifth random number set; and sending the third random seed, the fourth random seed, and the sixth random number set to the second device comprises: sending the third random seed, the fourth random seed, and the sixth random number set to the second device, wherein the second device generates the third random number set and the fourth random number set based on the third random seed and the fourth random seed, and the second device performs MPC based on the third random number set, the fourth random number set, and the sixth random number set.
 5. The computer-implemented method of claim 1, wherein: the first random seed, the second random seed, the third random seed, and the fourth random seed are all MPC random seeds; and each of the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set includes at least one random number that is used to participate in MPC.
 6. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising: generating a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed, respectively; generating a fifth random number set and a sixth random number set, respectively, based on the first random number set, the second random number set, the third random number set, and the fourth random number set, wherein random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set satisfy a predetermined condition; sending the first random seed, the second random seed, and the fifth random number set to a first device; and sending the third random seed, the fourth random seed, and the sixth random number set to a second device.
 7. The non-transitory, computer-readable medium of claim 6, wherein the predetermined condition satisfied by the random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set comprises: (<u₀>_(i)+<u₁>_(i))(<v₀>_(i)+<v₁>_(i))=<z₀>_(i)+<z₁>_(i), wherein <u₀>_(i) represents an ith random number u₀ in the first random number set, <u₁>_(i) represents an ith random number u₁ in the third random number set, <v₀>_(i) represents an ith random number v₀ in the second random number set, <v₁>_(i) represents an ith random number v₁ in the fourth random number set, <z₀>_(i) represents an ith random number z₀ in the fifth random number set, <z₁>_(i) represents an ith random number z₁ in the sixth random number set, and i is a natural number greater than zero.
 8. The non-transitory, computer-readable medium of claim 6, wherein generating the fifth random number set and the sixth random number set, respectively, based on the first random number set, the second random number set, the third random number set, and the fourth random number set comprises: generating the fifth random number set and computing first data as a random number in the sixth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the predetermined condition; or generating the sixth random number set and computing second data as a random number in the fifth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the sixth random number set, and the predetermined condition.
 9. The non-transitory, computer-readable medium of claim 6, wherein: sending the first random seed, the second random seed, and the fifth random number set to the first device comprises: sending the first random seed, the second random seed, and the fifth random number set to the first device, wherein the first device generates the first random number set and the second random number set based on the first random seed and the second random seed, and the first device performs MPC based on the first random number set, the second random number set, and the fifth random number set; and sending the third random seed, the fourth random seed, and the sixth random number set to the second device comprises: sending the third random seed, the fourth random seed, and the sixth random number set to the second device, wherein the second device generates the third random number set and the fourth random number set based on the third random seed and the fourth random seed, and the second device performs MPC based on the third random number set, the fourth random number set, and the sixth random number set.
 10. The non-transitory, computer-readable medium of claim 6, wherein: the first random seed, the second random seed, the third random seed, and the fourth random seed are all MPC random seeds; and each of the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set includes at least one random number that is used to participate in MPC.
 11. A computer-implemented system, comprising: one or more computers; and one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform operations comprising: generating a first random number set, a second random number set, a third random number set, and a fourth random number set based on a first random seed, a second random seed, a third random seed, and a fourth random seed, respectively; generating a fifth random number set and a sixth random number set, respectively, based on the first random number set, the second random number set, the third random number set, and the fourth random number set, wherein random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set satisfy a predetermined condition; sending the first random seed, the second random seed, and the fifth random number set to a first device; and sending the third random seed, the fourth random seed, and the sixth random number set to a second device.
 12. The computer-implemented system of claim 11, wherein the predetermined condition satisfied by the random numbers in the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set comprises: (<u₀>_(i)+<u₁>_(i))(<v₀>_(i)+<v₁>_(i))=<z₀>_(i)+<z₁>_(i), wherein <u₀>_(i) represents an ith random number u₀ in the first random number set, <u₁>_(i) represents an ith random number u₁ in the third random number set, <v₀>_(i) represents an ith random number v₀ in the second random number set, <v₁>_(i) represents an ith random number v₁ in the fourth random number set, <z₀>_(i) represents an ith random number z₀ in the fifth random number set, <z₁>_(i) represents an ith random number z₁ in the sixth random number set, and i is a natural number greater than zero.
 13. The computer-implemented system of claim 11, wherein generating the fifth random number set and the sixth random number set, respectively, based on the first random number set, the second random number set, the third random number set, and the fourth random number set comprises: generating the fifth random number set and computing first data as a random number in the sixth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the predetermined condition; or generating the sixth random number set and computing second data as a random number in the fifth random number set based on the first random number set, the second random number set, the third random number set, the fourth random number set, the sixth random number set, and the predetermined condition.
 14. The computer-implemented system of claim 11, wherein: sending the first random seed, the second random seed, and the fifth random number set to the first device comprises: sending the first random seed, the second random seed, and the fifth random number set to the first device, wherein the first device generates the first random number set and the second random number set based on the first random seed and the second random seed, and the first device performs MPC based on the first random number set, the second random number set, and the fifth random number set; and sending the third random seed, the fourth random seed, and the sixth random number set to the second device comprises: sending the third random seed, the fourth random seed, and the sixth random number set to the second device, wherein the second device generates the third random number set and the fourth random number set based on the third random seed and the fourth random seed, and the second device performs MPC based on the third random number set, the fourth random number set, and the sixth random number set.
 15. The computer-implemented system of claim 11, wherein: the first random seed, the second random seed, the third random seed, and the fourth random seed are all MPC random seeds; and each of the first random number set, the second random number set, the third random number set, the fourth random number set, the fifth random number set, and the sixth random number set includes at least one random number that is used to participate in MPC. 